.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_CreateMigrationBlob" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Key_CreateMigrationBlob \- create a key blob suitable for migrating to another TPM.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_CreateMigrationBlob(TSS_HKEY " hKeyToMigrate ",          TSS_HKEY " hParentKey ","
.BI "                                        UINT32   " ulMigTicketLength ",      BYTE*    " rgbMigTicket ","
.BI "                                        UINT32*  " pulRandomLength ",        BYTE**   " prgbRandom ","
.BI "                                        UINT32*  " pulMigrationBlobLength ", BYTE**   " prgbMigrationBlob ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_CreateMigrationBlob\fR returns a key blob containing an encrypted section, which will be different depending on the migration scheme indicated within the migration ticket previously created by the method Tspi_TPM_AuthorizeMigrationTicket().
.SH "PARAMETERS"
.PP
.SS hKeyToMigrate 
Handle of the key object to migrate.
.PP
.SS hParentKey
Handle to the parent key related to the key addressed by hKeyToMigrate.
.PP
.SS ulMigTicketLength
The length (in bytes) of the rgbMigTickey parameter.
.PP
.SS rgbMigTicket
Pointer to memory containing the migration ticket (migration public key and its authorization digest).
.PP
.SS pulRandomLength 
On successful completion this parameter returns the random data length returned at the parameter prgbRandom.
.PP
.SS prgbRandom
On successful completion this parameter returns the random data.
.PP
.SS pulMigrationBlobLength
On successful completion this parameter returns the length of the migration blob data returned at the parameter prgbMigrationBlob.
.PP
.SS prgbMigrationBlob
On successful completion this parameter returns the migration data blob. 
.PP
.SH "RETURN CODES"
.PP
\fBTspi_Key_CreateMigrationBlob\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhKeyToMigrate\fR, \fIhParentKey\fR or \fIrgbMigTicket\fR are invalid parameters.
.TP
.SM TSS_E_BAD_PARAMETER - One of the passed parameters is wrong. 
.TP
.SM TSS_E_KEY_NO_MIGRATION_POLICY - No migration policy picked.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.

.SH "CONFORMING TO"

.PP
\fBTspi_Key_CreateMigrationBlob\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"

.PP
\fBTspi_Key_CreateKey\fR(3), \fBTspi_Key_CertifyKey\fR(3).




